package br.unirio.octopus.visao.interceptadores;

import org.apache.struts2.ServletActionContext;

import br.unirio.octopus.dominio.Usuario;

import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

/**
 * 	Classe de interceptador responsavel por implementar um filtro que verificara se existe um usuario logado na sessao.
 * 	Caso nao exista, invocara o redirecionamento para uma pagina de login.
 * 
 * 	Obs.: O interceptador so sera acionado para as requisicoes que vem de paginas que exigem um usuario logado.
 * 
 * @author Victor
 *
 */
public class InterceptadorDeLogin extends AbstractInterceptor{

	private static final long serialVersionUID = -610124839955401292L;

	@Override
	public String intercept(ActionInvocation invocation) throws Exception {
		Usuario usuarioLogado = (Usuario) ServletActionContext.getRequest().getSession().getAttribute("usuarioLogado");
		
		//Se nao existe usuario logado na session
		if(usuarioLogado==null){
			return "redirecionarParaLogin";
		}
		
		//caso contrario, prosseguir com a requisicao		
		return invocation.invoke();
	}

}
